package com.zb.excel;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.enums.poi.BorderStyleEnum;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
import com.zb.excel.converter.WithdrawStatusToStringConverter;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @Author WEN
 * @Date 2024/6/15 0015
 **/
@Data
@ApiModel("提现单导出Excel对象")
@HeadRowHeight(30)  // 表头行高
@ContentRowHeight(15)  //内容行高
@ColumnWidth(20)  //列宽
public class WithdrawExcelVo {
    @ApiModelProperty(value = "提现单号")
    @ExcelProperty(value = "提现单号", index = 0)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String code;

    @ApiModelProperty(value = "工单单号")
    @ExcelProperty(value = "关联工单", index = 1)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String workNo;

    @ApiModelProperty(value = "申请时间")
    @ExcelProperty(value = "申请时间", format = "yyyy-MM-dd HH:mm", index = 2)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private Date createTime;

    @ApiModelProperty(value = "申请人名称")
    @ExcelProperty(value = "工程师", index = 3)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String applyNetworkEmp;

    @ApiModelProperty(value = "服务商名称")
    @ExcelProperty(value = "服务商", index = 4)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String network;

    @ApiModelProperty(value = "提现状态：1-提现待审核，2-等待打款，3-打款完成，4-失败，5-驳回")
    @ExcelProperty(value = "提现状态", index = 5, converter = WithdrawStatusToStringConverter.class)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private Integer status;

    @ApiModelProperty(value = "提现总金额")
    @ExcelProperty(value = "总提现金额", index = 6)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private BigDecimal withdrawMoney;

    @ApiModelProperty(value = "手续费")
    @ExcelProperty(value = "总手续费", index = 7)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private BigDecimal withdrawHandlingFee;

    @ApiModelProperty(value = "到账金额")
    @ExcelProperty(value = "到账金额", index = 8)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private BigDecimal receivedAmount;

    @ApiModelProperty(value = "银行卡名称")
    @ExcelProperty(value = "提现银行", index = 9)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String name;

    @ApiModelProperty(value = "持卡人姓名")
    @ExcelProperty(value = "收款人姓名", index = 10)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String cardholderName;

    @ApiModelProperty(value = "银行卡号")
    @ExcelProperty(value = "收款账户", index = 11)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String bankNo;

//    @ApiModelProperty(value = "开户行")
//    @ExcelProperty(value = "开户行")
//    private String openingBank;

    @ApiModelProperty(value = "审核时间")
    @ExcelProperty(value = "审核时间", format = "yyyy-MM-dd HH:mm", index = 12)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private Date checkTime;

    @ApiModelProperty(value = "申请备注")
    @ExcelProperty(value = "申请备注", index = 13)
    @ContentStyle(verticalAlignment = VerticalAlignmentEnum.CENTER, horizontalAlignment = HorizontalAlignmentEnum.CENTER,
            borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderLeft = BorderStyleEnum.THIN)
    private String applyRemark;

}
